package com.parking.carsystem.parkingchargesystem.common;

import android.app.Application;
import android.util.Log;

import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.cache.CacheEntity;
import com.lzy.okgo.cache.CacheMode;
import com.lzy.okgo.cookie.CookieJarImpl;
import com.lzy.okgo.cookie.store.SPCookieStore;
import com.parking.carsystem.parkingchargesystem.module.ListDefaultOrderModule;
import com.tencent.smtt.sdk.QbSdk;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;

public class CarApp extends Application {
    public static OkGo okGo;
    public static ListDefaultOrderModule.RowsBean rowsBean;
    @Override
    public void onCreate() {
        super.onCreate();
        initSetting();
        initSDk();
    }

    private void initSetting() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        //全局的读取超时时间
        builder.readTimeout(20000, TimeUnit.MILLISECONDS);
        //全局的写入超时时间
        builder.writeTimeout(20000, TimeUnit.MILLISECONDS);
        //全局的连接超时时间
        builder.connectTimeout(7500, TimeUnit.MILLISECONDS);
        //使用SharedPreferences保持cookie，如果cookie不过期，则一直有效
        builder.cookieJar(new CookieJarImpl(new SPCookieStore(this)));
        //必须调用初始化
        //建议设置OkHttpClient，不设置将使用默认的
        //全局统一缓存模式，默认不使用缓存，可以不传
        //全局统一缓存时间，默认永不过期，可以不传
        //设置统一的请求头
        //全局统一超时重连次数，默认为三次，那么最差的情况会请求4次(一次原始请求，三次重连请求)，不需要可以设置为0
        okGo = OkGo.getInstance().init(this)                       //必须调用初始化
                .setOkHttpClient(builder.build())               //建议设置OkHttpClient，不设置将使用默认的
                .setCacheMode(CacheMode.NO_CACHE)               //全局统一缓存模式，默认不使用缓存，可以不传
                .setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)   //全局统一缓存时间，默认永不过期，可以不传
//                .addCommonHeaders(headers)                         //设置统一的请求头
                .setRetryCount(1);
    }

    /**
     * 初始化sdk
     */
    public void initSDk() {
        // 在使用 SDK 各组间之前初始化 context 信息，传入 ApplicationContext
        // 默认本地个性化地图初始化方法
        SDKInitializer.initialize(this);
        //自4.3.0起，百度地图SDK所有接口均支持百度坐标和国测局坐标，用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标，默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
        QbSdk.setDownloadWithoutWifi(true);

        //x5内核初始化接口
        QbSdk.initX5Environment(getApplicationContext(),  cb);
    }
    /**
     * 搜集本地tbs内核信息并上报服务器，服务器返回结果决定使用哪个内核。
     */
    QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

        @Override
        public void onViewInitFinished(boolean arg0) {
            //x5內核初始化完成的回调，为true表示x5内核加载成功，否则表示x5内核加载失败，会自动切换到系统内核。
            Log.e("APPAplication", " onViewInitFinished is " + arg0);
        }

        @Override
        public void onCoreInitFinished() {
            Log.e("APPAplication", " onCoreInitFinished");
        }
    };
}
